@node POSIX users and groups
@section Users and groups

@stindex posix-users
@cindex user ids
@cindex group ids
@dfn{User ids} & @dfn{group ids} are boxed integers that represent Unix
users & groups.  Also, every user & group has a corresponding @dfn{user
info} or @dfn{group info} record, which contains miscellaneous
information about the user or group.  The procedures in this section
are exported by the structures @code{posix-users} & @code{posix}.

@deffn procedure user-id? object @returns{} boolean
@deffnx procedure user-id=? uid@suba{a} uid@suba{b} @returns{} boolean
@deffnx procedure user-id->integer uid @returns{} integer
@deffnx procedure integer->user-id integer @returns{} uid
@deffnx procedure group-id? object @returns{} boolean
@deffnx procedure group-id=? gid@suba{a} gid@suba{b} @returns{} boolean
@deffnx procedure group-id->integer gid @returns{} integer
@deffnx procedure integer->group-id integer @returns{} gid
@code{User-id?} & @code{group-id?} are the disjoint type predicates for
user & group ids.  @code{User-id=?} & @code{group-id=?} test whether
two user or group ids, respectively, are the same, @ie{} whether their
numbers are equal.  @code{User-id->integer}, @code{group-id->integer},
@code{integer->user-id}, & @code{integer->group-id} convert between
user or group ids and integers.
@end deffn

@cindex POSIX user info
@cindex POSIX group info
@deffn procedure user-id->user-info uid @returns{} user-info
@deffnx procedure name->user-info string @returns{} user-info
@deffnx procedure group-id->group-info gid @returns{} group-info
@deffnx procedure name->group-info string @returns{} group-info
These provide access for the user or group info records that correspond
with the given user or group ids or names.
@end deffn

@deffn procedure user-info? object @returns{} boolean
@deffnx procedure user-info-name user-info @returns{} string
@deffnx procedure user-info-id user-info @returns{} user-id
@deffnx procedure user-info-group user-info @returns{} group-id
@deffnx procedure user-info-home-directory user-info @returns{} string
@deffnx procedure user-info-shell user-info @returns{} string
@deffnx procedure group-info? object @returns{} boolean
@deffnx procedure group-info-name group-info @returns{} string
@deffnx procedure group-info-id group-info @returns{} group-id
@deffnx procedure group-info-members group-info @returns{} user-id-list
@code{User-info?} & @code{group-info?} are the disjoint type predicates
for user info & group info records.  The others are accessors for the
various data available in those records.
@end deffn
